/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package POJOS;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;

/**
 *
 * @author John
 */
public class IncidenciaAction extends ActionSupport implements ModelDriven<Incidencia> {
    
    private static final long serialVersionUID = -6659354552584240539L;

    private Incidencia incidencia = new Incidencia();
    private List<Incidencia> listaIncidencias = new ArrayList<Incidencia>();
    private IncidenciaDAO incidenciaDAO = new IncidenciaDAO();
    private List<TipoIncidencia> tipoIncidencias;
    private TipoIncidenciaDAO tipoIncidenciaDAO = new TipoIncidenciaDAO();

    @Override
    public Incidencia getModel() {
        return incidencia;
    }

    /**
     * To save or update user.
     * @return String
     */
    public String guardarOActualizar()
    {	
        incidenciaDAO.guardarOActualizarIncidencia(incidencia);
        return SUCCESS;
    }

    /**
     * To list all users.
     * @return String
     */
    public String listar()
    {
        listaIncidencias = incidenciaDAO.listarIncidencias();
        return SUCCESS;
    }

    /**
     * To delete a user.
     * @return String
     */
    public String eliminar()
    {
        HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
        incidenciaDAO.eliminarIncidencia(Long.parseLong(request.getParameter("id")));
        return SUCCESS;
    }

    /**
     * To list a single user by Id.
     * @return String
     */
    public String editar()
    {
        HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
        incidencia = incidenciaDAO.listarIncidenciaPorId(Long.parseLong(request.getParameter("id")));
        return SUCCESS;
    }

    public Incidencia getIncidencia() {
        return incidencia;
    }

    public void setIncidencia(Incidencia incidencia) {
        this.incidencia = incidencia;
    }

    public List<Incidencia> getListaIncidenciaes() {
        return listaIncidencias;
    }

    public void setListaIncidenciaes(List<Incidencia> listaIncidenciaes) {
        this.listaIncidencias = listaIncidenciaes;
    }

    public List<TipoIncidencia> getTipoIncidencias() {

        return tipoIncidenciaDAO.listarTipoIncidencias();
    }

    /**
     * @return the tipoIncidenciaDAO
     */
    public TipoIncidenciaDAO getTipoIncidenciaDAO() {
        return tipoIncidenciaDAO;
    }

    /**
     * @param tipoIncidenciaDAO the tipoIncidenciaDAO to set
     */
    public void setTipoIncidenciaDAO(TipoIncidenciaDAO tipoIncidenciaDAO) {
        this.tipoIncidenciaDAO = tipoIncidenciaDAO;
    }
        
}